package com.ship.dispatch.service;

import com.ship.common.business.service.BaseService;
import com.ship.dispatch.bean.SpYearPlanSchemeDetail;
import com.ship.dispatch.bean.SpYearPlanSchemeDetailHistory;
import com.ship.dispatch.bo.PlanSchemeDetailHistorysStatusBO;
import com.ship.dispatch.bo.ReduceProgrammeBO;
import com.ship.dispatch.bo.SpYearPlanSchemeDetailHistoryBO;
import com.ship.dispatch.vo.*;

import java.util.List;

public interface SpYearPlanSchemeDetailHistoryService extends BaseService<SpYearPlanSchemeDetailHistory> {

    /**
     * 还原方案
     */
    Long reduceProgrammeBySchemeId(ReduceProgrammeBO reduceProgrammeBO);

    /**
     * 新增历史记录
     *
     * @return
     */
    void savePlanSchemeDetailHistory(SpYearPlanSchemeDetailHistoryBO spYearPlanSchemeDetailHistoryBO);

    /**
     * 新增历史记录(重载)
     *
     * @return
     */
    void savePlanSchemeDetailHistory(SpYearPlanSchemeDetailHistoryBO spYearPlanSchemeDetailHistoryBO,Long schemeOldId,Long schemeNewId);

    /**
     * 查询历史记录（通过schemeDetailId）
     *
     * @return
     */
    List<SpYearPlanSchemeHistoryVO> getPlanSchemeDetailHistorys(PlanSchemeDetailHistorysStatusBO historyStatusBO);

    List<PlanDetailsBySchemeHistoryVO> getTryToArrange(Integer year, String createBy);

    List<String> getPlanDetailsHistoryByShipName(String createBy);

    List<String> getPlanDetailsHistoryByGoodsName(String createBy);

    List<String> getPlanDetailsHistoryBySellerName(String createBy);

    List<SpYearPlanSchemeDetailHistoryVO> getShipTryToArrange(Integer year, String createBy,String shipName,Long schemeId);

    List<SpYearPlanSchemeDetailHistoryVO> getGoodsNumTryToArrange(Integer year,String createBy,String goodsNum,Long schemeId);
    List<SpYearPlanSchemeDetailHistoryVO> getSellerTryToArrange(Integer year,String createBy,String seller,Long schemeId);
}
